﻿/**
 * 
 * @file FITKAcousticsGeometryData.h
 * @brief 几何数据类声明
 * @author LiBaojun (libaojunqd@foxmail.com)
 * @date 2024-10-06
 * 
 */
#ifndef _FITKACOUSTICS_GEOMETRY_DATA_H___
#define _FITKACOUSTICS_GEOMETRY_DATA_H___
 
#include "FITKAcousticsModelAPI.h"
#include "FITK_Interface/FITKInterfaceGeometry/FITKGeoCommandList.h"

namespace Acoustics
{
    /**
     * @brief 几何数据类声明
     * @author LiBaojun (libaojunqd@foxmail.com)
     * @date 2024-10-06
     */
    class FITKAcousticsModelAPI FITKAcousticsGeometryData : public 
        Interface::FITKGeoCommandList
    {
        FITKCLASS(Acoustics, FITKAcousticsGeometryData);
    public:
        /**
         * @brief Construct a new FITKAcousticsGeometryData object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-10-06
         */
        explicit FITKAcousticsGeometryData() = default;
        /**
         * @brief Destroy the FITKAcousticsGeometryData object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-10-06
         */
        virtual ~FITKAcousticsGeometryData() = default;
        /**
         * @brief Get the Geometry Data From AppFrame
         * @return FITKAcousticsGeometryData* 
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-10-06
         */
        static FITKAcousticsGeometryData* GetGeometryDataFromFrame();
        /**
         * @brief    通过类型获取几何数据
         * @param[i] type FGTPoint:点 FGTSegment:线 FGTClosedWireSurface:面 FGTClosedSurfaceSolid:体
         * @return   QList<Interface::FITKAbsGeoCommand*>
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-13
         */
        QList<Interface::FITKAbsGeoCommand*> getGeometryByType(Interface::FITKGeoEnum::FITKGeometryComType type);
     
    };
}


#endif
